import {
  getCode,
  loginByCode,
  updateUserInfo,
  getUserInfo,
  getFollowInfo,
  changeUserAvatar,
  changeUserInfo
} from "../api/user";

export const user = {
  async login() {
    try {
      // 获取微信code
      let code = await getCode();
      // 发送到后端请求
      let result = await loginByCode(code);
      // 返回
      return result.data;
    } catch (err) {
      throw err;
    }
  },
  // 直接切换到注册的流程
  showRegister(frame_active_dom) {
    frame_active_dom.value = 2;
  },
  // 显示用户信息输入页面
  showUserInfoInputPage(frame_active_dom, userInfo) {
    if (userInfo.sex != '男' && userInfo.sex != '女') {
      return uni.showToast({
        title: '请选择性别',
        icon: 'none'
      });
    }
    frame_active_dom.value = 3;
  },
  // 显示用户名称输入页面
  showUserNameInputPage(frame_active_dom, userInfo) {
    let grade = ['大一', '大二', '大三', '大四'];
    if (grade.indexOf(userInfo.grade) == -1) {
      return uni.showToast({
        title: '请输入正确的年级',
        icon: 'none'
      });
    }
    if (!userInfo.college) {
      return uni.showToast({
        title: '请输入学校',
        icon: 'none'
      });
    }
    if (!userInfo.subCollege) {
      return uni.showToast({
        title: '请输入学院',
        icon: 'none'
      });
    }
    if (!userInfo.major) {
      return uni.showToast({
        title: '请输入专业',
        icon: 'none'
      });
    }
    frame_active_dom.value = 4;
  },
  // 跳转到用户名称输入页面
  toUserNameInputPage(frame_active_dom) {
    frame_active_dom.value = 5;
  },
  // 跳转到随机用户名称页面
  toRandomUserNamePage(frame_active_dom) {
    frame_active_dom.value = 6;
  },
  // 跳转到主页的函数
  toMainPage() {
    uni.navigateTo({
      url: '/pages/main/main'
    });
  },
  // 验证参数并跳转到主页
  async checkAndToMainPage(sex, grade, college, subCollege, major, username) {
    try {
      // 修改用户信息
      let result = await updateUserInfo(sex, grade, college, subCollege, major, username);
      if (result.code == 200) {
        user.toMainPage();
      } else {
        return uni.showToast({
          title: result.msg,
          icon: 'none'
        });
      }
    } catch (err) {
      return uni.showToast({
        title: '网络错误',
        icon: 'none'
      });
    }
  },
  
  // 获取用户信息
  async getUserInfo() {
    try {
      let result = await getUserInfo();
      return result.data;
    } catch (err) {
      return uni.showToast({
        title: '网络错误',
        icon: 'none'
      });
    }
  },
  // 获取用户关注信息
  async followInfo() {
    try {
      let result = await getFollowInfo();
      return result.data;
    } catch (err) {
      return uni.showToast({
        title: '网络错误',
        icon: 'none'
      });
    }
  },
  // 修改用户头像
  async changeUserAvatar(dataurl) {
    try {
      let result = await changeUserAvatar(dataurl);
      return result;
    } catch (err) {
      return uni.showToast({
        title: '网络错误',
        icon: 'none'
      });
    }
  },
  // 修改用户信息
  async changeUserInfo(newData) {
    try {
      let result = await changeUserInfo(newData);
      return result;
    } catch (err) {
      return uni.showToast({
        title: '网络错误',
        icon: 'none'
      });
    }
  },
};